$(function () {
    initCate()
    initEditor()
    // 初始化文章分类
    function initCate() {
        $.ajax({
            method: 'GET',
            url: '/my/cate/list',
            success(res) {
                if (res.code != 0) {
                    return layui.layer.msg(res.message)
                }
                // console.log(res);
                let html = template('tpl-select', res)
                // console.log(html);
                $('[name=cate_id]').html(html)
                // 通知layui重新渲染表单结构
                layui.form.render()
            }
        })
    }

    // 1. 初始化图片裁剪器
    var $image = $('#image')

    // 2. 裁剪选项
    var options = {
        aspectRatio: 400 / 280,
        preview: '.img-preview'
    }

    // 3. 初始化裁剪区域
    $image.cropper(options)

    $('#choose').on('click', function () {
        $('#file').click()
    })

    // 监听file的change事件，获取选择的文件列表
    $('#file').on('change', function (e) {
        let files = e.target.files
        if (files.length == 0) {
            return
        }
        // 根据文件，创建对应的url地址
        var newImgURL = URL.createObjectURL(files[0])
        $image
            .cropper('destroy')      // 销毁旧的裁剪区域
            .attr('src', newImgURL)  // 重新设置图片路径
            .cropper(options)        // 重新初始化裁剪区域

    })

    // 定义文章发布状态
    let art_state = '已发布'
    // 为存为草稿按钮绑定点击事件
    $('#btnSave').on('click', function () {
        art_state = '草稿'
    })
    $('#form-pub').on('submit', function (e) {

        e.preventDefault()
        // 创建FormData对象
        let fd = new FormData($(this)[0])

        // 将state追加
        fd.append('state', art_state)


        // 将封面裁剪过后的图片，输出为一个对象
        $image.cropper('getCroppedCanvas', { // 创建一个 Canvas 画布
            width: 400,
            height: 280
        })
            .toBlob(function (blob) {       // 将 Canvas 画布上的内容，转化为文件对象
                // 得到文件对象后，进行后续的操作
                // 追加到formdata
                fd.append('cover_img', blob)
                publishArticle(fd)
            })

    })



    function publishArticle(fd) {
        $.ajax({
            method: 'POST',
            url: '/my/article/add',
            data: fd,
            // 如果向服务器提交的是formdata格式
            // 必须添加以下两个属性
            contentType: false,
            processData: false,
            success(res) {

                if (res.code != 0) {
                    return layui.layer.msg(res.message)
                }
                layui.layer.msg('发表文章成功')
                // 发布文章成功后，跳转到文章列表页面
                location.href = '/article/article_list.html'
                parent.document.getElementById("publish").className = ''
                parent.document.getElementById("list").className = 'layui-this'
            }
        })
        // $("#list", parent.document).click()
    }

})